package gagak.framework.web.multipart;

import gagak.framework.web.annonation.HttpMethod;
import gagak.framework.web.annonation.Nullable;
import gagak.framework.web.support.http.HttpHeaders;

import javax.servlet.http.HttpServletRequest;

public interface MultipartHttpServletRequest extends HttpServletRequest, MultipartRequest {

	/*
	 * Return this request's method as a convenient HttpMethod instance.
	 */
	@Nullable
	HttpMethod getRequestMethod();

	/*
	 * Return this request's headers as a convenient HttpHeaders instance.
	 */
	HttpHeaders getRequestHeaders();

	/*
	 * Return the headers associated with the specified part of the multipart request.
	 * <p>If the underlying implementation supports access to headers, then all headers are returned.
	 * Otherwise, the returned headers will include a 'Content-Type' header at the very least.
	 */
	@Nullable
	HttpHeaders getMultipartHeaders(String paramOrFileName);

}
